package univ.lille1.fr.car;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import univ.lille1.fr.car.ejb.Livre;
import univ.lille1.fr.car.ejb.Panier;
import univ.lille1.fr.car.manager.LivreManager;

public class ListeLivres extends HttpServlet {
	private static final long serialVersionUID = 747914394815621538L;

	protected LivreManager livreManager = new LivreManager();
	protected List<Livre> listeLivres = new ArrayList<Livre>();
	
	HttpSession session;

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		this.checkConnect(request, response);
		
		// initialisation de la DB
		this.listeLivres = Init.initDBLivre(listeLivres, livreManager);
		
		request.setAttribute("listeLivres", listeLivres);
		
		// test
		session = request.getSession();
		Panier temp = (Panier) session.getAttribute("panier");
		request.setAttribute("panier", temp);
		
		this.getServletContext().getRequestDispatcher("/WEB-INF/livres.jsp")
				.forward(request, response);
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		this.checkConnect(request, response);
		
		// initialisation de la DB
		this.listeLivres = Init.initDBLivre(listeLivres, livreManager);
		
		request.setAttribute("listeLivres", listeLivres);
		
		// on récupère ce qu'il y a en session
		session = request.getSession();
		// on récupère le panier
		Panier temp = (Panier) session.getAttribute("panier");
		// on ajoute le livre au panier
		temp.addItem(request.getParameter("titre"));
		// on remet le panier en session
		session.setAttribute("panier", temp);
		
		request.setAttribute("message", "le livre a été ajouté");
		request.setAttribute("panier", temp);
		this.getServletContext().getRequestDispatcher("/WEB-INF/livres.jsp")
		.forward(request, response);
	}
	
	// check si l'utilisateur est bien connecté, sinon retour sur la page d'inscription
	public void checkConnect(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
		HttpSession session = request.getSession();

		if(session.getAttribute("username") == null){
			this.getServletContext().getRequestDispatcher("/WEB-INF/connexion.jsp").forward(request, response);
		}
	}
}
